home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Toolbox
/
Visual Basic Toolbox (P.I.E.)(1996).ISO
/
dll_file
/
dllmgr
/
readme.now
< prev
next >
Wrap
Text File
|
1992-09-15
|
4KB
|
97 lines
DLLManager
==========
Before We Begin...
------------------
Required DLLs not supplied with the small download version:
VBRUN100.DLL VB runtime DLL
CMDIALOG.VBX Common Dialog control (from VB PTK)
CMDIALOG.DLL Common Dialog DLL (supplied with Win 3.1)
TOOLHELP.DLL Windows low-level analysis DLL, can't remember whether
it comes with Win 3.1 or the SDK.
THREED.VBX 3D control (from VB PTK)
If anyone wants any of the above, and it's legal to do so, I'll prepare a
long version of the download file with all the runtime DLLs. (Let me jsut check
the license agreements...)
To run this app you must have the above files installed somewhere on your path.
A small DLL, VBWINGTS.DLL, supplied with this download, should also appear
on your path.
I recommend the files on the list go to WINDOWS\SYSTEM, while the latter goes
into some miscellaneous DLL directory (personally I hate having DLLs which I
may want to remove one day in critical directories).
This app has not been tested on Windows 3.0. I haven't used it for over a year
and I don't intend to start now!
How To Use It
-------------
When run from Program Manager (no guarantees for other shells!), a list of
all installed DLLs (optionally including .EXEs, .FONs, .VBXs, .XLLs and .DRVs)
is displayed. Use the Options menu to specify which.
To remove a module, click on its path name and then hit the Remove DLL button.
The program performs 10 FreeLibrary() calls. If the little fellow is still on
the list after that, try it again. If it still won't go, there's something about
loading modules that I haven't learnt yet...
To load a module, use File/Find... to select it, then hit Load DLL. That should
be it. Again, if it doesn't show up, there's something funny going on, but hey,
I'm not charging anything...
To pre-load a module, select Startup... and File/Find to specify modules to be
loaded next time you enter Windows.
The Startup Option
------------------
To automatically load specified modules when you enter Windows, add DLLMGR.EXE
to your Startup group, adding an S to the command line. DLL Manager will run
next time you enter Windows. No S? You just get a list of what's loaded so far.
Background
----------
We spend a lot of time at work building Windows DLLs, many of which are
intended to be called from Excel. In the way of these things, bugs occur...
We discovered that Excel, when crashed, doesn't unload all its DLLs,
CROSSTAB.XLL being the particular culprit. So, once a bug was discovered, we
had to exit Windows in order to remove the offending DLL from memory. When
this is happening every 10 minutes or so it starts to get really annoying.
So I had the bright idea to write a little VB app to do my unloading for me.
It worked so well that I became incredibly popular. But users, especially
developer users, are fickle, and I soon got requests for enhancements, like
a general DLL loader/unloader. So I built version 1 of DLLMGR. This got me
into TOOLHELP, a thoroughly useful module. I had to write a small C DLL,
VBWINGTS to let me use the TOOLHELP structures: it was easier than trying to
decipher structures with embedded character arrays.
Version 2 came about when I decided that it would be nice to have the app load
specified DLLs when Windows loads, to ensure that they stay resident all
through the session.
So here it is. If it's useful, great. Use it with care - there are all sorts of
ways to use it to crash Windows by unloading DLLs that are in use...
Known Faults
------------
It appears that finding and loading a second file in the same run doesn't do
anything. I haven't yet figured out why. No damage is caused, you just have to
re-run to load a second DLL.
Outro
-----
If you have contructive(!) criticisms, other bug reports, praise, suggestions
or other communications, I'd be happy to read them. Straight email to the
CIS address below will probably get to me quickest; I'm online most days.
Mike Woodhouse
100023,604